#pragma once
#include <boost/noncopyable.hpp>
#include "ImportExport.h"

namespace ja2{ namespace sgp
{
	class FontTranslationTable;

	typedef std::unique_ptr<FontTranslationTable> FontTranslationTablePtr_t;

	//! Table that translate characters to image index.
	class FontTranslationTable : boost::noncopyable
	{
		// Typedefs
	private:
		//! Map of all characters.
		typedef std::map<wchar_t, std::uint_least8_t> CharMap_t;

		// Attributes
	private:
		//! Character vector.
		CharMap_t m_Table;

		// Operations
	public:
		//! Create english translation table.
		JA2_SGP_API static FontTranslationTablePtr_t create_english();
	private:
		//! Add symbol.
		void add(wchar_t Symbol, std::uint_least8_t Index);

		// Construction/Destruction
	private:
		FontTranslationTable(void);
	};
} /*sgp*/} /*ja2*/
